Глава II
2.4. Допольнительные свойства базисных функций

Пусть `{u_j}`, `0≤j≤k`, будет строго возрастающим набором точек останова. Мно­жество всех кусочно-многочленных функций степени `p` на `{u_j}`, которые являются `C_j^r` непрерывны в `u=u_j` образует векторное пространство, `V(-1≤r_j≤p)`. Если ника­ких ограничений непрерывности не накладывается (`r_j=-1` для всех `j`), то размер­ность `V` (обозначается `dim(V)`) равна `k(p+1)`. Каждое ограничение непре­рывности уменьшает размерность на единицу, таким образом

`dim(V)=k(p+1)-sum_{j=0}^k(r_j+1)` (2.12)

Из Св.2.5, мы получим базисные функции B-сплайнов `p`-степени с узлами в `{u_j}`, и с желаемой преемственностью, установив соответствующие узловые кратности, `s_j`, где `s_j=p-r_j`. Таким образом, мы используем векторные узлы вида

`U="{"ubrace(u_0,…,u_0,)_(s_0)ubrace(u_1,…,u_1)_(s_1),…,ubrace(u_k,…,u_k)_(s_k)"}"`

теперь установим

`m=(sum_{j=0}^ks_j)-1`

Тогда, очевидно, существует `m` функций нулевой степени, `N_{i,0}`, `m-1` первые функ­ции степени, `N_{i,1}`, и в целом, `m-p` функции `p`-ой степени, `N_{i,p}`, которые имеют нуж­ную преемственность, `r_j=p-s_j`, Поэтому `N_{i,p}` содержатся в `V`. Подставляя `s_j=p-r_j` в формуле (2.12) дает

`dim(V)=k(p+1)-sum_{j=0}^k(p-s_j+1)``=k(p+1)-(k+1)p+sum_{j=0}^ks_j -(k+1)``=-p-1+sum_{j=0}^ks_j=m-p`

Таким образом, число `p`-ой степени базисных функций B-сплайнов на `U` равно `dim(V)`. Теперь оправдания термина "базисных" функций, показав, что `N_{i,p}` линейно независимы, то есть, они образуют базис векторного пространства, `V`. Доказательство производится индукцией по `p`. Очевидно, что функции нулевой степени линейно неза­висимы. Предположим, что `(p-1)`й-степени функции линейно независимы при `p>0`. Положим `n=m-p-1`, и предположим, что

`sum_{i=0}^nα_iN_{i,p}(u)=0`   для всех `u`

Используя формулу (2.7) получаем

`0=(sum_{i=0}^nα_iN_{i,p})^'=sum_{i=0}^nα_iN_{i,p}^'=psum_{i=0}^nα_i(N_{i,p-1}/(u_{i+p}-u_i)-N_{i+1,p-1}/(u_{i+p+1}-u_(i+1)))`

что означает, что

`0=sum_{i=0}^nα_iN_{i,p-1}/{u_{i+p}-u_i}-sum_{i=0}^nα_iN_{i+1,p-1}/{u_{i+p+1}-u_{i+1}}`

Теперь отметив, что `N_{0,p-1]=N_{n+1,p-1}=0`, и, изменив переменную суммирования во втором слагаемом, у нас есть

`0=sum_{i=0}^n{α_i-α_{i-1}}/{u_{i+p}-u_i}N_{i,p-1}`

что подразумевает `α_i-α_{i-1}=0` для всех `i` (по предположению), которая в свою очередь, предполагает `α_i=0` для всех `i`. Это завершает доказательство.

Обратим внимание теперь на узловые векторы. Очевидно, что когда-то степень фиксированна, узловой вектор полностью определяют функции `N_{i,p}(u)`. Есть несколь­ко типов узловых векторов, и, к сожалению, терминология различается в литературе. В этой книге мы будем рассматривать только непериодические (или зажатые или откры­тые) векторы узел, которые имеют форму

`U="{"ubrace(a,…,a)_{p+1},u_{p+1},…,u_{m-p-1},ubrace(b,…,b)_{p+1}"}"` (2.13)

то есть, первые и последние узлы имеют кратность `p+1`. Для непериодических узловых векторов мы имеем два дополнительных свойства базисных функций:
Св.2.7 Узловой вектор вида

`U="{"ubrace(0,…,0)_(p+1),ubrace(1,…,1)_(p+1)"}"`

дает многочлены Бернштейна степени `p` (смотри Пример 2.1 в разделе 2.2);
Св.2.8 Пусть `m+1` число узлов. Тогда есть `n+1` базисных функций, где `n=m-p-1`; `N_{0,p}(a)=1` и `N_{n,p}(b)=1`. Например, `N_{0,p}(a)=1` следует из того, что `N_{0,0},…,N_{p-1,0}=0`, так как это означает, что `N_{0,p}(a)=N_{p,0}(a)=1`. Из Св.2.4 следует, что `N_{i,p}(a)=0` для `i≠0`, и `N_{i,p}(b)=0` для `i≠n`.

В оставшейся части этой книги, все векторные узлы понимаются непериодически­ми. Определим векторный узел `U={u_0,…,u_m}` однородным, если все внутренние узлы на одинаковом расстоянии, то есть, если существует действительное число, `d`, та­кое, что `d=u_{i+1}-u_i` для всех `p≤i≤m-p-1`; в противном случае это является неоднородным. Векторный узел из Пример2.2, раздела 2.2 неоднородна из-за двойного узла на `u=4`. Рисунок 2.9а показывает набор единых кубических базисных функций, и рисунки 2.10а и 2.12 показывают неоднородные кубические базисные функции.

Рисунок 2.12. Неоднородные кубические базисные функции, определенные на `U={0,0,0,0,1,5,6,8,8,8,8}`.